<?php $mikron->Page->StartBody();

    // TestNewFeatures();

    function TestNewFeatures()
    {
        global $mikron;

        //Считываем текущее время 
        $mtime = microtime(); 
        //Разделяем секунды и миллисекунды 
        $mtime = explode(" ",$mtime); 
        //Составляем одно число из секунд и миллисекунд 
        $mtime = $mtime[1] + $mtime[0]; 
        //Записываем стартовое время в переменную 
        $tstart = $mtime;

        // $cr = new Criterion('email', '%@yandex.ru', CR_LIKE);

        /*$users = $mikron->EntityManager->Query_('T_USER');
        foreach($users as $object)
        {
            echo $object->email->value, '<br />';
        }*/

        $result = $mikron->Queries->Query('T_NEWS', null, null);
        while($object4 = $result->fetch())
        {
            echo $object4->text->value, '<br />';
        }

        //Делаем все то же самое, чтобы получить текущее время 
        $mtime = microtime(); 
        $mtime = explode(" ",$mtime); 
        $mtime = $mtime[1] + $mtime[0]; 
        //Записываем время окончания в другую переменную 
        $tend = $mtime; 
        //Вычисляем разницу 
        $totaltime = ($tend - $tstart); 
        //Выводим не экран
        printf ("<br />Страница сгенерирована за %f сек!", $totaltime);
        echo '<br />', round(memory_get_peak_usage() / 1024 / 1024, 2).' Mb<br />';

        $mikron->Page->EndBody();
        exit;
    }

    $needform = true;
    $errortext = null;

    $login_email_pattern = "/^[a-zA-Z0-9_\-.@]*$/";

    if(isset($_REQUEST['form_values']))
    {
        $form_values = $_REQUEST['form_values'];
        if(array_key_exists('login', $form_values) &&
           array_key_exists('password', $form_values) &&
           array_key_exists('password2', $form_values) &&
           array_key_exists('email', $form_values) &&
           array_key_exists('captcha', $form_values)
           )
        {

            $login = $form_values['login'];
            $password = $form_values['password'];
            $password_retype = $form_values['password2'];
            $email = $form_values['email'];

            if(!preg_match($login_email_pattern, $login))
            {
                $errortext="Использованы запрещенные символы. Разрешено использовать
                только латинские буквы, цифры, знаки подчеркивания и @.";
            }
            if(!preg_match($login_email_pattern, $email))
            {
                $errortext="Использованы запрещенные символы. Разрешено использовать
                только латинские буквы, цифры, знаки подчеркивания и @.";
            }

            $captcha = $form_values['captcha']; 
            if(!(isset($_SESSION["captcha"]) && $_SESSION["captcha"]===$captcha))
            {
                $errortext = "Неверный код подтверждения.";
            }
            if($email == ""){$errortext="Некорректный адрес электронной почты.";}
            if($login == ""){$errortext="Некорректный логин."; $needform = true;}
            if($password != $password_retype){$errortext="Введенные пароли не совпадают.";}
        }
        else
        {
            $errortext = "Некорректная форма регистрации.";
        }
        if(is_null($errortext))
        {
            try
            {
                $ref = null;
                if(isset($_COOKIE['referal']))
                {
                    $ref = $_COOKIE['referal'];
                    $ref2 = quote_smart($ref);
                    $ref = $mikron->Queries->Query('T_USER', null, new Criterion('login', $ref));
                    $ref = $ref->count() == 1 ? $ref->fetch() : null;
                }
                $cabinet = new T_USER();
                $cabinet->login->value = $login;
                $cabinet->password->value = $password;
                $cabinet->email->value = $email;
                if(!is_null($ref->id))
                {
                    $cabinet->referal->value = $ref->id;
                }
                $cabinet->Save();
                $needform = false;
                ?>Спасибо за регистрацию, теперь Вы можете войти в свой аккаунт.<?php
            }
            catch(Exception $ex)
            {
                if(mysql_errno()==1062)
                {
                    $errortext="Такой логин или адрес электронной почты уже заняты.";
                }
                else
                {
                    $errortext="Внутренняя ошибка сервера при регистрации.".$ex->getMessage();
                }
            }
        }
    }

    if($needform)
    {
        ?>
        <div style="padding-left: .5em; padding-bottom: .5em; ">{{$REGISTERINFO}}</div>
        <table><tr><td>
        {{nicewindow style=silver caption="Регистрация"}}
        <form action="/reg/" method="post" onsubmit="return validate(this, validatelist);">
        <table cellspacing="0" cellpadding="2" border="0">
            <tr><td>Логин:</td><td><input name="form_values[login]" size="32" maxlength="32" /></td></tr>
            <tr><td>Пароль:</td><td><input name="form_values[password]" size="32" maxlength="32" type="password" /></td></tr>
            <tr><td>Повтор пароля:</td><td><input name="form_values[password2]" size="32" maxlength="32" type="password" /></td></tr>
            <tr><td>Электронная почта:</td><td><input name="form_values[email]" size="32" maxlength="32" type="email" /></td></tr>
            <tr><td><img src="/mikron/captcha/captcha.php?rgb=220_220_220&amp;anticache=<?php echo time(); ?>" alt="captcha" /></td><td><input name="form_values[captcha]" size="5" maxlength="5" /></td></tr>
            <tr><td>&nbsp;</td><td><input type="submit" value="Зарегистрироваться" /></td></tr>
        </table>
        </form>
        {{/nicewindow}}
        </td></tr></table>

        <?php
        if(!is_null($errortext))
        {
            echo "{{nicewindow style=error caption=\"Внимание\"}}$errortext{{/nicewindow}}";
        }
        ?>
        
        <script type="text/javascript" src="../mikron/functions.js"></script>
        <script type="text/javascript">
            // правила валидации формы
            var validatelist = [
                ['form_values[login]', 'required', 'alert("Укажите логин.");'],
                ['form_values[password]', 'required', 'alert("Введите пароль.");'],
                ['form_values[password2]', 'required', 'alert("Введите повторный пароль.");'],
                ['form_values[email]', 'required', 'alert("Введите адрес электронной почты.");'],
                ['form_values[captcha]', 'required', 'alert("Введите число с картинки.");']
                ];
            // autofocus
            try
            {
                var ele = document.getElementById('form_values[login]');
                ele.focus();
            }
            catch(err)
            {
                // do nothing
            }
            
        </script>
    
<?php } $mikron->Page->EndBody(); ?>